package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * @author Huangjin
 * @version 1.0
 * describe:
 * @date 2023/3/2 14:19
 */
public class IteratorDemo {
    public static void main(String[] args) {
        Collection c = new ArrayList();
        c.add("one");
        c.add("#");
        c.add("two");
        c.add("#");
        c.add("three");
        c.add("#");
        c.add("four");
        System.out.println(c);
        /*
            迭代器的常用方法
            1）boolean hasNext()--------问（必须操作）
            询问集合和是否还有“下一个”元素可供迭代
            注意：迭代器默认开始位置在集合第1个元素之前
                无乱调用了多少次的hasNext(),迭代器的位置都不会改变
            2）Object next()---------取（必要操作）
                迭代器向后移动一个位置来指向集合的下一个元素并将其获取
         */
        //获取集合c的迭代器
        Iterator it = c.iterator();
        while (it.hasNext()){
            //获取下一个元素并强转String类型
            String str = (String) it.next();
            System.out.println(str);
            if ("#".equals(str)){
                //c.remove(str);//迭代器遍历过程中不允许通过集合的方式来增删元素，否则会报异常
                //删除next()方法所获取的元素
                it.remove();
            }
        }
        System.out.println(c);
    }
}
